﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace 组合模式
{
    /// <summary>
    /// 复杂图形，由一些简单图形组成,这里假设该复杂图形由一个圆两条线组成的复杂图形
    /// 组合模型，将子类聚在一起list，提供add  remove  遍历
    /// </summary>
    public class ComplexGraphics : Graphics
    {
        private List<Graphics> comGraphicsList = new List<Graphics>();

        public ComplexGraphics(string name1)
            : base(name1)
        {
        }

        //复杂图形的画法
        public override void Draw()
        {
            foreach (Graphics g in comGraphicsList)
            {
                g.Draw();
            }
        }
        //自己特有的方法
        public void Add(Graphics g)
        {
            comGraphicsList.Add(g);
        }
        public void Remove(Graphics g)
        {
            comGraphicsList.Remove(g);
        }
    }
}
